package org.hidroinformatica.shapes.feature;

import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

/**
 * Classe que encapsula o Map de definições para a leitura do shapefile.
 * 
 * @author Carlos A. Junior (CIH - Centro Internacional de Hidroinformática)
 */
public class Definition
{
	private Map<String, String> definicoes;

	public Definition(Map<String, String> definicoes)
	{
		super();
		
		this.definicoes = definicoes;
	}

	public Definition()
	{
		super();
	}
	
	/**
	 * Adiciona uma definição para a leitura do shapefile.
	 * 
	 * @param shapeKey
	 * 
	 * @param targetClassAttribute
	 * 
	 * @return Definition
	 */
	public Definition add(String shapeKey, String targetClassAttribute)
	{
		this.getDefinicoes().put(shapeKey, targetClassAttribute);
		
		return this;
	}
	
	/**
	 * Retorna os dados de definições dentro de um objeto Iterator de
	 * elementos Entry (chave - valor).
	 * 
	 * 
	 * @see Iterator
	 * 
	 * @see Entry
	 * 
	 * @return Iterator
	 */
	public Iterator<Entry<String, String>> getIteratorDefinitions ()
	{
		return this.getDefinicoes().entrySet().iterator();
	}

	public Map<String, String> getDefinicoes() {
		return definicoes;
	}

	public void setDefinicoes(Map<String, String> definicoes) {
		this.definicoes = definicoes;
	}
}
